package ${cfg.convertPackage};

import ${cfg.PagedResult};
import ${cfg.List};
import ${cfg.voPackage}.${entity}PageVO;
import ${cfg.voPackage}.${entity}ListVO;
import ${cfg.voPackage}.${entity}VO;
import ${cfg.dtoPackage}.${entity}PageDTO;
import ${cfg.dtoPackage}.${entity}ListDTO;
import ${cfg.dtoPackage}.${entity}DTO;
import ${cfg.modelPackage}.${entity}Param;
import ${cfg.modelPackage}.${entity}PageParam;
import ${cfg.modelPackage}.${entity}ListParam;
import ${cfg.boPackage}.${entity}BO;
import ${cfg.boPackage}.${entity}PageBO;
import ${cfg.boPackage}.${entity}ListBO;
import ${package.Entity}.${entity};
import ${package.Entity}.${entity}PageDO;
import ${package.Entity}.${entity}ListDO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;

@Mapper
public interface ${entity}Convert {

    ${entity}Convert INSTANCE = Mappers.getMapper(${entity}Convert.class);

    ${entity}PageDTO convert(${entity}PageParam ${table.entityPath}PageParam);

    ${entity}ListDTO convert(${entity}ListParam ${table.entityPath}ListParam);

    ${entity}DTO convert(${entity}Param ${table.entityPath}Param);

    ${entity} convert(${entity}DTO ${table.entityPath}DTO);

    ${entity}PageDO convert(${entity}PageDTO ${table.entityPath}PageDTO);

    ${entity}VO convert(${entity}BO ${table.entityPath}BO);

    ${entity}BO convert(${entity} ${table.entityPath});

    List<${entity}ListBO> convert(List<${entity}ListDO> ${table.entityPath}List);

    List<${entity}ListVO> convertVoList(List<${entity}ListBO> ${table.entityPath}ListBO);

    @Mappings({})
    PagedResult<${entity}PageBO> convert(IPage<${entity}PageDO> page);

    PagedResult<${entity}PageVO> convert(PagedResult<${entity}PageBO> page);
}